% !Mode:: "TeX:UTF-8"

\chapter{项目测试}

\section{测试范围}
\subsection{功能测试}
\begin{itemize}
    \item {用户注册与登录}
    \item {商户信息管理}
    \item {菜品管理}
    \item {订单管理}
    \item {支付功能}
    \item {用户评论}
    \item {搜索与筛选}
\end{itemize}
\subsection{安全测试}
\begin{itemize}
\item {用户认证与授权}
\item {数据加密}
\item {输入验证和防止注入}
\item {异常处理}
\end{itemize}

\vspace{1cm}  % 添加 1 厘米的垂直空白

\section{功能测试方案}
\subsection{用户注册与登录}
目标：验证用户登录和注册是否正常工作

测试用例：
\begin{enumerate}
    \item {注册功能}
    \begin{itemize}
        \item {步骤}：输入合法的用户名和密码，点击注册。
        \item {期望结果}：用户成功注册。
    \end{itemize}
    \item {登录功能}
    \begin{itemize}
        \item {步骤}：输入注册时的用户名和密码，点击登录。
        \item {期望结果}：用户成功登录，重定向到首页。
    \end{itemize}
    \item {注册验证}
    \begin{itemize}
        \item {步骤}：输入已存在的用户名进行注册。
        \item {期望结果}：系统提示用户名已被使用。
    \end{itemize}
    \item {密码错误}
    \begin{itemize}
        \item {步骤}：输入错误的密码尝试登录。
        \item {期望结果}：系统提示密码错误。
    \end{itemize}
\end{enumerate}

\subsection{商户信息管理}
目标：验证商户能够正确管理其店铺信息。

测试用例：
\begin{enumerate}
    \item {商户信息编辑}
    \begin{itemize}
        \item {步骤}：商户登录，修改店铺信息（如店铺名称、地址、营业时间），保存修改。
        \item {期望结果}：修改信息成功，用户能够在店铺页面看到最新信息。
    \end{itemize}
    \item {商户信息删除}
    \begin{itemize}
        \item {步骤}：商户选择删除店铺信息。
        \item {期望结果}：店铺信息被成功删除，并且从列表中移除。
    \end{itemize}
\end{enumerate}

\subsection{菜品管理}
目标：确保商户可以正确管理菜品信息。

测试用例：
\begin{enumerate}
    \item {添加菜品}
    \begin{itemize}
        \item {步骤}：商户登录，添加新菜品（包括名称、价格、描述等），保存。
        \item {期望结果}：菜品成功添加并显示在菜单中。
    \end{itemize}
    \item {修改菜品}
    \begin{itemize}
        \item {步骤}：商户登录，编辑现有菜品的信息，保存。
        \item {期望结果}：菜品信息更新成功，并在菜单中显示更新后的信息。
    \end{itemize}
    \item {删除菜品}
    \begin{itemize}
        \item {步骤}：商户登录，删除菜品。
        \item {期望结果}：菜品成功删除，并从菜单中移除。
    \end{itemize}
\end{enumerate}
 
\subsection{订单管理}
目标：确保订单处理流程正常。

测试用例：
\begin{enumerate}
    \item {创建订单}
    \begin{itemize}
        \item {步骤}：用户选择菜品，添加到购物车，结算并创建订单。
        \item {期望结果}：订单成功创建，用户收到订单确认。
    \end{itemize}
    \item {订单状态更新}
    \begin{itemize}
        \item {步骤}：商户更新订单状态（如已接受、已配送）。
        \item {期望结果}：订单状态更新成功，用户能够看到最新状态。
    \end{itemize}
\end{enumerate}

\subsection{支付功能}
目标：验证支付流程是否正常。

测试用例：
\begin{enumerate}
    \item {支付流程}
    \begin{itemize}
        \item {步骤}：用户选择支付方式，进行支付。
        \item {期望结果}：支付成功，系统生成支付确认，订单状态更新为已支付。
    \end{itemize}
    \item {支付失败处理}
    \begin{itemize}
        \item {步骤}：模拟支付失败。
        \item {期望结果}：系统能够正确处理支付失败情况，并提示用户。
    \end{itemize}
\end{enumerate}

\subsection{用户评论}
目标：验证评论功能的正常运行。

测试用例：
\begin{enumerate}
    \item {添加评论}
    \begin{itemize}
        \item {步骤}：用户对订单进行评论。
        \item {期望结果}：评论成功发布，并显示在商户页面。
    \end{itemize}
    \item {删除评论}
    \begin{itemize}
        \item {步骤}：用户删除之前的评论。
        \item {期望结果}：评论被成功删除，并从页面中移除。
    \end{itemize}
\end{enumerate}

\subsection{搜索与筛选}
目标：确保用户能够正确搜索和筛选商户及菜品。

测试用例：
\begin{enumerate}
    \item {搜索功能}
    \begin{itemize}
        \item {步骤}：用户输入关键词进行搜索。
        \item {期望结果}：系统返回相关的商户或菜品列表。
    \end{itemize}
    \item {筛选功能}
    \begin{itemize}
        \item {步骤}：用户选择筛选条件（如价格区间、评分等）。
        \item {期望结果}：系统显示符合筛选条件的商户或菜品。
    \end{itemize}
\end{enumerate}

\vspace{1cm}  % 添加 1 厘米的垂直空白

\section{安全测试方案}
\subsection{用户认证与授权}
目标：验证系统的认证和授权机制。

测试用例：
\begin{enumerate}
    \item {未授权访问}
    \begin{itemize}
        \item {步骤}：尝试访问受保护的资源（如管理后台）未登录用户。
        \item {期望结果}：系统拒绝访问，并重定向到登录页面。
    \end{itemize}
    \item {权限控制}
    \begin{itemize}
        \item {步骤}：普通用户尝试执行管理员功能（如删除商户）。
        \item {期望结果}：系统拒绝操作并提示权限不足。
    \end{itemize}
\end{enumerate}

\subsection{数据加密}
目标：确保敏感数据的加密存储和传输。

测试用例：
\begin{enumerate}
    \item {数据库加密}
    \begin{itemize}
        \item {步骤}：检查数据库中的敏感信息是否加密存储（如用户密码）。
        \item {期望结果}：敏感数据加密存储，并且无法被直接读取。
    \end{itemize}
    \item {传输加密}
    \begin{itemize}
        \item {步骤}：检查数据在网络传输过程中是否使用了MD5。
        \item {期望结果}：数据传输使用加密方法。
    \end{itemize}
\end{enumerate}

\subsection{输入验证与防注入}
目标：防止恶意输入和注入攻击。

测试用例：

SQL注入
    \begin{itemize}
        \item {步骤}：尝试在输入字段中插入SQL注入代码。
        \item {期望结果}：系统能够正确过滤和处理恶意输入，防止SQL注入。
    \end{itemize}


\subsection{安全配置}
目标：验证系统安全配置的正确性。

测试用例：
\begin{enumerate}
    \item {安全头部}
    \begin{itemize}
        \item {步骤}：检查HTTP响应头中是否存在安全相关的配置。
        \item {期望结果}：HTTP响应头中包含适当的安全配置。
    \end{itemize}
    \item {错误处理}
    \begin{itemize}
        \item {步骤}：故意触发错误（如404或500错误）。
        \item {期望结果}：系统提供用户友好的错误信息。
    \end{itemize}
\end{enumerate}


\subsection{异常处理}
目标：确保系统能够正确处理异常并记录日志。

测试用例：
\begin{enumerate}
    \item {异常处理}
    \begin{itemize}
        \item {步骤}：触发系统异常（如数据库连接失败）。
        \item {期望结果}：系统能够正确处理异常并给用户友好的提示，而不是崩溃或暴露堆栈信息。
    \end{itemize}
    \item {日志记录}
    \begin{itemize}
        \item {步骤}：检查系统日志文件。
        \item {期望结果}：系统能够记录异常和重要操作日志，且日志中不包含敏感信息。
    \end{itemize}
\end{enumerate}